package com.summer.common.lib.context;

import java.util.List;
import java.util.Map;

/**
 * 实例化组建
 */
public interface Instantiate {

    /**
     * 获取组件列表
     *
     * @return 组件name列表
     */
    List<String> getAllComponentNames();

    /**
     * 获取组件Map
     *
     * @return hashMap
     */
    Map<String, Object> getAllComponents();

    /**
     * 根据组件名查询组件object
     *
     * @param name 组件名
     * @param <C>
     * @return object
     */
    <C> C lookupComponent(String name);

}
